package com.kaiqingsun.io;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class FindandDelete {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        String rootPath = "D:\\课程";
        String condition = ".mp3";
        List<File> resultList = new ArrayList<>(); //存放符合条件的文件列表
        //遍历整棵树，找到符合条件的所有文件，并且将结果放入resultList
        File rootFile = new File(rootPath);
        traversal(rootFile,condition,resultList);
        //依次针对每个结果，询问用户是否要删除的
        for (File file :resultList){
            System.out.println("是否要删除该文件："+file.getCanonicalPath());
            if (!scanner.hasNextBoolean()){
                System.out.println("推出");
                return;
            }
            boolean isDelete = scanner.nextBoolean();
            if (isDelete){
                file.delete();
            }
        }

    }

    private static void traversal(File dirFile,String condition, List<File> resultList) {
        File[] files = dirFile.listFiles();
        if (files == null){
            return;
        }
        for (File file: files){
            if (file.isDirectory()){
                traversal(file,condition,resultList);
            } else if (file.isFile()) {
                //判断文件是否满足条件 ： 是否以XXX结尾
                String name = file.getName();
                if (name.endsWith(condition)){
                    //说明符合查找条件
                    resultList.add(file);
                }
            }
        }
    }
}
